教你用OpenCV 和 Python给证件照换底色(蓝底 红底

您所在的位置:网站首页 用ps证件照换底色 蓝色换白色 教你用OpenCV 和 Python给证件照换底色(蓝底 红底

教你用OpenCV 和 Python给证件照换底色(蓝底 红底

2024-07-06 02:23:59| 来源: 网络整理| 查看: 265

在我们的生活中常常要用到各种底色要求的证件电子照,红底、蓝底、或者白底,而假如你手上只有一种底色的证件照,你又不想再去拍又不会PS怎么办?今天教你们用OpenCV和Python给你的证件照换底色。

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

Python3 numpy函数库 OpenCV库 Windows10 + Anaconda+Pycharm 教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

1.读取要换底色的图片

导入OpenCV库,使用imread函数读取图片。

import cv2import numpy as np

# 读取照片并显示image=cv2.imread('yang.jpg')cv2.imshow('image',image)

2.对图片进行缩放

证件照原图太大,不易显示,cv2.resize函数进行缩放处理。

# 图像缩放并显示img = cv2.resize(image,None,fx=0.5,fy=0.5)rows,cols,channels = img.shapeprint(rows,cols,channels)cv2.imshow('img',img) 教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

3.将图片转换为灰度图像

cv2.cvtColor函数将读取的图像默认是BGR格式转换为HSV格式,将彩色图片转换为hsv灰度图片,之后才能进行腐蚀和膨胀操作。

# 图片转换为灰度图并显示hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)cv2.imshow('hsv',hsv) 教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

4.对图片进行二值化处理

通过cv2.inRange函数对图片进行二值化操作,获取背景的mask,二值化处理是为了将灰度图片转换为黑白图片,如下图将红色的背景用白色表示,白色区域就是我们后面遍历像素点替换的条件,就是将白色的区域替换为蓝色。

cv2.inRange(hsv, lower_red, upper_red):在lower_red和upper_red两个阈值内的像素值设置为白色(255),而不在阈值区间内的像素值设置为黑色(0)。

# 图片的二值化处理#红底变蓝底#将在两个阈值内的像素值设置为白色(255),而不在阈值区间内的像素值设置为黑色(0)lower_red= np.array([0,135,135])upper_red = np.array([180,245,230])mask = cv2.inRange(hsv, lower_red, upper_red)# 显示图像cv2.imshow('mask',mask)

# #蓝底变红底# lower_blue = np.array([90,70,70])# upper_blue = np.array([110,255,255])# mask = cv2.inRange(hsv, lower_blue, upper_blue)# 显示图像# cv2.imshow('mask',mask)

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

5.对图片进行腐蚀和膨胀

在进行二值化操作之后,我们可以看到黑色区域有一些噪声,嘴的部分是白的,还有少数白点,就cv2.erode或者cv2.dilate函数对图片再进行腐蚀和膨胀操作,均可以有效消除噪声。

#腐蚀膨胀erode=cv2.erode(mask,None,iterations=1)cv2.imshow('erode',erode)

dilate=cv2.dilate(erode,None,iterations=1)cv2.imshow('dilate',dilate)

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

6.遍历像素点替换背景颜色

对上述进行了腐蚀或者膨胀操作的图片进行像素点遍历,将白色区域的像素点的位置,也就是原图的背景部分的像素的对应的位置,替换成你想要替换的底色即可。

dilate[i,j]==255: 像素点为255表示的是白色,我们就要将白色处的像素点,替换为你想要的照片底色。

img[i,j]=(0,0,255): 此处替换颜色,为BGR通道,不是RGB通道,若是想要将红底变成蓝底img[i,j]=(255,0,0),若是想将蓝底变为红底则img[i,j]=(0,0,255),若是想变白底img[i,j]=(255,255,255)

# 遍历每个像素点,进行颜色的替换for i in range(rows): for j in range(cols): if dilate[i,j]==255: #像素点255表示白色 img[i,j]=(255,0,0) # 此处替换颜色,为BGR通道,不是RGB通道cv2.imshow('res',img)

# 窗口等待的命令,0表示无限等待cv2.waitKey(0)

红底变蓝底

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

蓝底变红底

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

变白底

教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)

 

完整代码,关注下面回复:证件照,下载使用。

更多有关python、深度学习和计算机编程和电脑知识的精彩内容,可以关注微信公众号:码农的后花园

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭